#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>

#include <linux/device.h>

extern struct bus_type vbus;

static void vdev_release(struct device *dev)
{

}

// 定义代表设备的vdev对象
static struct device vdev = {
    .init_name = "vdev",  // 设备名称
    .bus = &vbus,  // 所属总线， 这样注册这个驱动时，就会将之直接挂载在vbus总线下
    .release = vdev_release,
};

static int __init vdev_init(void)
{
    return device_register(&vdev);  // 设备的注册
}

static void __exit vdev_exit(void)
{
    device_unregister(&vdev);  // 设备的注销
}

module_init(vdev_init);
module_exit(vdev_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("KDY <chaoxi_todo@qq.com>");
MODULE_DESCRIPTION("A simple module");
MODULE_ALIAS("virtual-serial");